package com.bana.fvs.protocol;

import com.bana.fvs.model.Controller;

import java.io.*;

public class SetControllerTimer {
    public int getId()
    {
        return 0x1b;
    }
    public byte[] toBuffer(int kzqbsm,Controller controller) throws IOException {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        DataOutputStream dos = new DataOutputStream(baos);
        dos.writeByte(0x81);
        dos.writeByte(kzqbsm);
        dos.writeByte(getId());
        dos.writeByte(controller.getTimeIndex());
        if(controller.getTimeIndex()==1)
        {
            dos.writeByte(controller.getStartHour1());
            dos.writeByte(controller.getStartMinute1());
            dos.writeByte(controller.getStopHour1());
            dos.writeByte(controller.getStopMinute1());
            dos.writeByte(controller.getMonth1());
            dos.writeByte(controller.getDay1());
            dos.writeByte(controller.getWdkz1());
            dos.writeByte(controller.getWdld1());
            dos.writeByte(controller.getZkb1()+1);
            dos.writeByte(controller.getHdys1());
            dos.writeByte(controller.getMqys1());
            dos.writeByte(controller.getHsjsdzsl1());
            dos.writeByte(controller.isSfsyxl1()?1:0);
        }
        else if(controller.getTimeIndex()==2)
        {
            dos.writeByte(controller.getStartHour2());
            dos.writeByte(controller.getStartMinute2());
            dos.writeByte(controller.getStopHour2());
            dos.writeByte(controller.getStopMinute2());
            dos.writeByte(controller.getMonth2());
            dos.writeByte(controller.getDay2());
            dos.writeByte(controller.getWdkz2());
            dos.writeByte(controller.getWdld2());
            dos.writeByte(controller.getZkb2()+1);
            dos.writeByte(controller.getHdys2());
            dos.writeByte(controller.getMqys2());
            dos.writeByte(controller.getHsjsdzsl2());
            dos.writeByte(controller.isSfsyxl2()?1:0);
        }
        else if(controller.getTimeIndex()==3)
        {
            dos.writeByte(controller.getStartHour3());
            dos.writeByte(controller.getStartMinute3());
            dos.writeByte(controller.getStopHour3());
            dos.writeByte(controller.getStopMinute3());
            dos.writeByte(controller.getMonth3());
            dos.writeByte(controller.getDay3());
            dos.writeByte(controller.getWdkz3());
            dos.writeByte(controller.getWdld3());
            dos.writeByte(controller.getZkb3()+1);
            dos.writeByte(controller.getHdys3());
            dos.writeByte(controller.getMqys3());
            dos.writeByte(controller.getHsjsdzsl3());
            dos.writeByte(controller.isSfsyxl3()?1:0);
        }
        dos.writeByte(0xFF);
        byte[] buffer= baos.toByteArray();
        dos.close();
        baos.close();
        return buffer;
    }
}
